package day1_array;

/**
 * @Author: yuisama
 * @Date: 2021/8/19 20:51
 * @Description:存在连续三个奇数的数组
 * 给你一个整数数组 arr，请你判断数组中是否存在连续三个元素都是奇数的情况：
 * 如果存在，请返回 true ；否则，返回 false 。
 * 示例 1：
 * 输入：arr = [2,6,4,1]
 * 输出：false
 * 解释：不存在连续三个元素都是奇数的情况。
 * 示例 2：
 *
 * 输入：arr = [1,2,34,3,4,5,7,23,12]
 * 输出：true
 * 解释：存在连续三个元素都是奇数的情况，即 [5,7,23] 。
 *
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode-cn.com/problems/three-consecutive-odds
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 */
public class Num1550_ThreeConsecutiveOdds {
    public boolean threeConsecutiveOdds(int[] arr) {
        if (arr.length < 3) {
            return false;
        }else {
            // 记录奇数出现次数
            int consecutiveNum = 0;
            for (int num : arr) {
                if (isConsecutiveNum(num)) {
                    consecutiveNum ++;
                    if (consecutiveNum == 3) {
                        return true;
                    }
                }else {
                    // 碰到偶数就重置
                    consecutiveNum = 0;
                }
            }
        }
        return false;
    }

    public boolean isConsecutiveNum(int num) {
        if (num % 2 == 0)
            return false;
        return true;
    }
}
